<?php
namespace app\component\controller;

use app\manage\controller\BasicController;
use app\component\model\FileModel;
use think\Request;


class Upload extends BasicController
{
    //上传文件
    public function upload(){
            //先判断日期目录存在不存在
            $file=request()->file('file');
            // 移动到框架应用根目录/public/uploads/ 目录下
            $info = $file->move(ROOT_PATH . 'public' . DS .'res');
            if($info){
                $filemodel=FileModel::create(['OldFileName'=>$info->getInfo()['name'],'NewFileName'=>'/res/'.$info->getSaveName()]);
                return json(['success'=>1,'info'=>$filemodel]);
            }
                return json(['success'=>0]);
    }


    public function uploadproduct(){
            //先判断日期目录存在不存在
            $file=request()->file('file');
            // 移动到框架应用根目录/public/uploads/ 目录下
            $info = $file->move(ROOT_PATH . 'public' . DS .'res');
            
            if($info){
                // $filemodel=FileModel::create(['OldFileName'=>$info->getInfo()['name'],'NewFileName'=>$info->getSaveName()]);
               
                return json(['errno'=>0,'data'=>['/res/'.$info->getSaveName()]]);
            }
                return json(['errno'=>1]);
    }

    //下载文件
    public  function downFile()
    {

            header("Content-Type:text/html; charset=utf8");

            $file=FileModel::get(input('get.Id'));
            if($file) {
                $file_name = ROOT_PATH . 'public/res/' . $file->NewFileName;

//                $name = basename($filePath);
//
//                $file_name = $_SERVER['DOCUMENT_ROOT'] . '/' . $filePath;

                //1.打开文件
                if (!file_exists($file_name)) {
                    echo "文件不存在";
                } else {
                    $fp = fopen($file_name, 'rb');
                    ob_clean();
                    //2、获取文件大小
                    $file_size = filesize($file_name);
                    header("Content-type: application/octet-stream");//告诉浏览器返回的是文件数据
                    header("Accept-Ranges: bytes");//以字节方式返回
                    header("Accept-Length: $file_size");//
                    //3.客户端弹出的对话框的文件名称
                    header("Content-Disposition: attachment; filename=" . $file->OldFileName);
                    //4、读取到缓存
                    $buffer = 1024;
                    $file_count = 0;
                    while (!feof($fp) && $file_size - $file_count > 0)//文件未到结尾
                    {
                        $file_data = fread($fp, $buffer);
                        $file_count += strlen($file_data);
                        echo $file_data;
                    }
                    //6.关闭
                    fclose($fp);
                }
            }else{//没找到模型
                echo 'none';
            }
    }
}